Technote HW 05 | August 1990 |
MC68020 and MC68030 processors have a "feature" which causes the data for byte and word transfers to be replicated (smeared) across all 32 data lines. An example illustrates the problem.
Consider the following code:
MOVE.L #$12345678,D0 ; Stuff some data MOVE.B D0,$102 ; Write a byte of data
The data actually placed on the data bus, with and without byte smearing, is shown in Figure 1.
Figure 1-Effect of Byte Smearing
With byte smearing, the byte of data is replicated across all the byte lanes; without smearing, the other bytes are undefined. A similar replication of data can occur with word transfers.
As an example where this can cause trouble, suppose you have a NuBus(TM) card with a device register which expects to be byte addressed at byte $102. With byte smearing it is actually possible to get away with writing a byte to any address from $100 through $103; without byte smearing, the card only sees the correct data when addressed at the correct byte $102.
The lack of "byte smearing" as a feature should not be a problem for most
developers; after all, why would anyone write to byte $100 when they really
meant to write to byte $102? Well, sad to say, at least one case of this
happening has been uncovered, so if you have, either inadvertently or by
design, relied on this feature, you should revise your products to run on
future Macintosh platforms.
Further Reference:
NuBus is a trademark of Texas Instruments.
Main | Page One | What's New | Apple Computer, Inc. | Find It | Contact Us | Help